import { commonProps, toolbarProps } from "../../libs/config";
import { keyboardEmits as _keyboardEmits } from "../../libs/tokens";

const modeTypes = ["number", "card", "car"];

export const keyboardProps = {
  ...commonProps,
  ...toolbarProps,
  // 键盘的类型，number-数字键盘，card-身份证键盘，car-车牌号键盘
  mode: {
    type: String,
    values: modeTypes,
  },
  // 是否显示键盘的"."符号
  dotDisabled: {
    type: Boolean,
    default:null
  },
  // 是否显示顶部工具条
  tooltip: {
    type: Boolean,
    default:null
  },
  // 是否显示工具条中间的提示
  showTitle: {
    type: Boolean,
    default:null
  },
  // 是否显示工具条左边的"取消"按钮
  showCancel: {
    type: Boolean,
    default:null
  },
  // 是否显示工具条右边的"完成"按钮
  showConfirm: {
    type: Boolean,
    default:null
  },
  // 是否打乱键盘按键的顺序
  random: {
    type: Boolean,
    default:null
  },
  // 是否开启底部安全区适配，开启的话，会在iPhoneX机型底部添加一定的内边距
  safeAreaInsetBottom: {
    type: Boolean,
    default:null
  },
  // 是否允许通过点击遮罩关闭键盘
  closeOnClickOverlay: {
    type: Boolean,
    default:null
  },
  // 控制键盘的弹出与收起
  show: {
    type: Boolean,
    default:null
  },
  // 是否显示遮罩，某些时候数字键盘时，用户希望看到自己的数值，所以可能不想要遮罩
  overlay: {
    type: Boolean,
    default:null
  },
  // z-index值
  zIndex: {
    type: [String, Number]
  },
  // mode为car时，输入一个中文后，是否自动切换到英文
  autoChange: {
    type: Boolean,
    default:null
  },
}

export const keyboardEmits = {
  close: () => true,
  confirm: () => true,
  cancel: () => true,
  ..._keyboardEmits,
};
